//
//  MainViewController.swift
//  DS11WB
//
//  Created by 杨上海 on 2017/10/13.
//  Copyright © 2017年 yangshanghai. All rights reserved.
//

import UIKit

class MainViewController: UITabBarController {

    override func viewDidLoad() {
        super.viewDidLoad()
        addChildViewController("HomeViewController", title: "首页", imageName: "tabbar_home")
        addChildViewController("MessageViewController", title: "消息", imageName: "tabbar_message_center")
        addChildViewController("DiscoverViewController", title: "发现", imageName: "tabbar_discover")
        addChildViewController("ProfileViewController", title: "我", imageName: "tabbar_profile")
        
        
    }
    
    //swift支持方法的重载
    //方法的重载：方法名称相同。但是参数不同。--> 1.参数的类型不同 2.参数的个数不同
    //private在当前文件中可以访问，但是其他文件不同访问
    
    private func addChildViewController(_ childController: String, title : String, imageName : String) {
        //0.获取命名空间
        guard let nameSpace = Bundle.main.infoDictionary!["CFBundleExecutable"] as? String else {
            print("没有获取命名空间")
            return
        }
        
        //1.根据字符串获取对应的Class
        guard let ChildVcClass = NSClassFromString(nameSpace + "." + childController) else {
            print("没有获取到字符串对应的Class")
            return
        }
        
        //2.2.将对应的AnyObject转成控制器的类型
        guard let childType = ChildVcClass as? UIViewController.Type else {
            print("没有回去对应的控制器类型")
            return
        }
        //3.创建对应的控制器对象
        let childVc = childType.init()
        
        //4.设置自控制器的属性
        childVc.title = title
        childVc.tabBarItem.image = UIImage(named: imageName)
        childVc.tabBarItem.selectedImage = UIImage(named: imageName + "_highlighted")
        //5.包装导航栏控制器
        let childNav = UINavigationController(rootViewController: childVc)

        //6.添加控制器
        addChildViewController(childNav)
    }


}
